As networks grow in complexity and size, network service providers are faced with the challenging task of guaranteeing the desired Quality of Service to its customers. Service Level Agreements (SLAs) negotiated between customers and the network service providers provide a way for the customers to specify the type of performance guarantees that are required for their traffic. These SLAs are generally negotiated well in advance before the customer actually uses the service. This implies that the customer should be aware well in advance if he would need preferential service, which in turn implies that the customer might have to pay up-front for better service, which he may not even use. Most customers are not technically qualified enough to specify their requirements in such a way that would result in an SLA that provides the level of service they need for the best price.
In addition, aspects of the network may make provisioning the traffic according to an SLA more difficult. An SLA also specifies the technical details such as performance requirements such as jitter, latency, and throughput in addition to identification of the traffic flow itself. The traffic flow is generally specified by source and destination address information. Some networks may include network address translators, which allow networks that do not have globally unique addresses to connect to larger networks. The network address translator translates the local, non-unique addresses into globally unique addresses, which in turn may make determination of the source and destination of the traffic flow difficult.
It would be highly desirable to have a mechanism wherein customers can request the desired service levels on a need-to basis. Also, a mechanism that will free the customer of technical details involved in specifying the exact service level requirements would be helpful.